  .text
  .align 3
  .globl SecMain
  .ent SecMain
  .type SecMain, @function
SecMain:
  .set noreorder
  .set nomacro
  nop
  nop
  .set macro
  .set reorder
  .end SecMain
  .align 3
  .globl k_intr
  .ent k_intr
  .type k_intr, @function
k_intr:
  .set noat
  sub $26, $29, ((((48 + (40 * 8) + 16)) + (16 -1)) & ~(16 -1))
  sd $at, 40 + (8 * 1) ($26) ; sd $2, 40 + (8 * 2) ($26) ; sd $3, 40 + (8 * 3) ($26) ; sd $4, 40 + (8 * 4) ($26) ; sd $5, 40 + (8 * 5) ($26) ; sd $6, 40 + (8 * 6) ($26) ; sd $7, 40 + (8 * 7) ($26) ; sd $8, 40 + (8 * 8) ($26) ; sd $9, 40 + (8 * 9) ($26) ; sd $10, 40 + (8 * 10) ($26) ; sd $11, 40 + (8 * 11) ($26) ; sd $12, 40 + (8 * 12) ($26) ; sd $13, 40 + (8 * 13) ($26) ; sd $14, 40 + (8 * 14) ($26) ; sd $15, 40 + (8 * 15) ($26) ; sd $24, 40 + (8 * 24) ($26) ; sd $25, 40 + (8 * 25) ($26) ; sd $28, 40 + (8 * 28) ($26) ; sd $31, 40 + (8 * 31) ($26) ; mflo $2 ; mfhi $3 ; mfc0 $4, $13 ; mfc0 $5, $12 ; dmfc0 $6, $8 ; dmfc0 $7, $14 ; sd $2, 40 + (8 * 33) ($26) ; sd $3, 40 + (8 * 34) ($26) ; sd $4, 40 + (8 * 36) ($26) ; sd $5, 40 + (8 * 32) ($26) ; sd $6, 40 + (8 * 35) ($26) ; sd $7, 40 + (8 * 37) ($26) ; sd $29, 40 + (8 * 29) ($26) ; addu $4, $26, 40 ; sd $6, 40 + (8 * 39) ($26)
  .set at
  move $29, $26 # Already on kernel stack
  la $28, _gp
  and $8, $5, ~(0x20000000 | 0x00000002 | 0x00000001 | 0x00000018)
  mtc0 $8, $12
  nop;nop;nop;nop
  nop;nop;nop;nop # XXX necessary?
  sw $4, 0($29)
  jal interrupt
  sw $7, 40 + (40 * 8)($29)
  lw $4, 40 + (40 * 8)($29)
  .set noat
  ld $9, 40 + (8 * 32) ($29) ; ld $10, 40 + (8 * 33) ($29) ; ld $11, 40 + (8 * 34) ($29) ; mtc0 $9, $12 ; mtlo $10 ; mthi $11 ; dmtc0 $4, $14 ; ld $at, 40 + (8 * 1) ($29) ; ld $2, 40 + (8 * 2) ($29) ; ld $3, 40 + (8 * 3) ($29) ; ld $4, 40 + (8 * 4) ($29) ; ld $5, 40 + (8 * 5) ($29) ; ld $6, 40 + (8 * 6) ($29) ; ld $7, 40 + (8 * 7) ($29) ; ld $8, 40 + (8 * 8) ($29) ; ld $9, 40 + (8 * 9) ($29) ; ld $10, 40 + (8 * 10) ($29) ; ld $11, 40 + (8 * 11) ($29) ; ld $12, 40 + (8 * 12) ($29) ; ld $13, 40 + (8 * 13) ($29) ; ld $14, 40 + (8 * 14) ($29) ; ld $15, 40 + (8 * 15) ($29) ; ld $24, 40 + (8 * 24) ($29) ; ld $25, 40 + (8 * 25) ($29) ; ld $28, 40 + (8 * 28) ($29) ; ld $31, 40 + (8 * 31) ($29)
  addu $29, $29, ((((48 + (40 * 8) + 16)) + (16 -1)) & ~(16 -1))
  sync
  eret
  .set at
.end k_intr
